package com.zatech.cgnci.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zatech.cgnci.project.dto.*;
import com.zatech.cgnci.project.entity.CgnciBusinessProjectDO;
import com.zatech.cgnci.project.vo.ApprovalRecordVO;
import com.zatech.cgnci.project.vo.CgnciBusinessProjectMainVO;
import com.zatech.cgnci.project.vo.CgnciBusinessProjectPageVO;

import java.util.List;

/**
 * <p>
 * 业务主表 服务类
 * </p>
 *
 * @author Generator
 * @since 2024-12-17
 */
public interface CgnciBusinessProjectService extends IService<CgnciBusinessProjectDO> {

    IPage<CgnciBusinessProjectPageVO> pageBusinessProject(CgnciBusinessProjectQueryDTO queryDTO);

    CgnciBusinessProjectMainVO detail(Long projectId);

    CgnciBusinessProjectDO saveOrUpdateBusinessMain(CgnciBusinessProjectSaveOrUpdateDTO updateDTO);

    void submit(FlowTaskSubmitDTO flowTaskDTO);

    void approve(FlowTaskApprovalDTO flowTaskDTO);

    void back(FlowTaskBackDTO flowTaskDTO);

    void signOut(Long projectId);

    List<ApprovalRecordVO> log(Long projectId);

    CgnciBusinessProjectDO nextCopy(CgnciBusinessProjectNextCopyDTO nextCopyDTO);

    CgnciBusinessProjectDO cancel(Long projectId);

}
